import http from '@/utils/request'
import { IAxiosRes } from '.'

/**
 * 获取用户自己信息
 * @returns Path： /v1_0/user
 * Method： GET
 */
export type TUserInfo = {
  art_count: number
  fans_count: number
  follow_count: number
  id: string
  intro: string
  like_count: number
  name: string
  photo: string
}
export function getUerInfo (): IAxiosRes<TUserInfo> {
  return http({
    url: '/user'
  })
}

/**
 *  获取用户个人资料
 * Path： /v1_0/user/profile
 * Method： GET
 */
export type TUserProfile = {
  birthday: string
  gender: number
  id: string
  mobile: string
  name: string
  photo: string
  intro?: string
}
export function getUserProfile (): IAxiosRes<TUserProfile> {
  return http({
    url: '/user/profile'
  })
}

/**\
 * 编辑用户个人资料
 * Path： /v1_0/user/profile
 * Method： PATCH
 */
export type TPatchUserProfile = {
  birthday?: string
  gender?: number
  name?: string
  intro?: string
}
export function patchUserProfile (data: TPatchUserProfile): IAxiosRes<null> {
  return http({
    url: '/user/profile',
    method: 'patch',
    data
  })
}

/**
 * 编辑用户照片资料（头像、身份证照片）
 * * 基本信息
 * Path： user/photo
 * Method： PATCH
 */
export function patchUserPhoto (data: FormData): IAxiosRes<{ photo: string }> {
  return http({
    url: '/user/photo',
    method: 'patch',
    data
  })
}

/**
 * 关注用户
   基本信息
   Path： /v1_0/user/followings
   Method： POST
   target	string	必须		关注用户的id	
 */
export function Following (id: string) {
  return http({
    url: '/user/followings',
    method: 'POST',
    data: {
      target: id
    }
  })
}

/**
   * 取消关注用户
     基本信息
     Path： /v1_0/user/followings/:target
     Method： DELETE
*/
export function unFollowing (id: string) {
  return http({
    url: `/user/followings/${id}`,
    method: 'DELETE',
  })
}